import { defineStore } from "pinia";

interface CounterStore {
  count: number;
  todoList: { id: number; name: string; isDone: boolean }[];
}

export const useCounterStore = defineStore(
  "counter", // 开发者调试工具显示pinia模块名称
  {
    // state必须是函数形式
    // 这个函数必须返回一个对象
    state: (): CounterStore => {
      return {
        count: 0,
        todoList: [],
      };
    },
    getters: {
      oddOrEven(state) {
        return (state.count & 1) === 1 ? "奇数" : "偶数";
      },
    },
    // pinia删除了mutations，只有actions
    // 发送请求和更新数据都需要在actions中完成
    actions: {
      // 每个action函数接受n个参数
      increment(a: number, b: number, c: number, d: number, e: number) {
        console.log(a, b, c, d, e);
        this.count++;
      },
    },
  }
);
